package com.jade.journal.desc.field.types;

import org.apache.commons.lang3.time.DateUtils;

/**
 * 简单日期类型
 * yyyy-MM-dd HH:mm:ss
 *
 * @author fengyun
 * @version Jan 10, 2003 2:14:13 PM
 */
public class DateTimeType extends AbstractType
{
    private static DateTimeType instance = new DateTimeType();

    /** 构造 */
    private DateTimeType()
    {
        super("DateTime");
    }

    /** 返回实例 */
    public static DateTimeType getInstance()
    {
        return instance;
    }

    /**
     * 将指定的数据转换成对象
     *
     * @param data 字节数组
     * @param off  起始位置
     * @param len  长度
     * @return 返回对象
     */
    public Object getObject(byte[] data, int off, int len)
    {
        if (len != 19) {
            return null;
        }
        try {
            return DateUtils.parseDate(getString(data, off, len), "yyyyMMdd HH:mm:ss");
        }
        catch (Throwable t) {
            return null;
        }
    }

    /**
     * 将指定的数据转换成对象
     *
     * @param data 字符数组
     * @param off  起始位置
     * @param len  长度
     * @return 返回对象
     */
    public Object getObject(char[] data, int off, int len)
    {
        if (len != 19) {
            return null;
        }
        try {
            return DateUtils.parseDate(getString(data, off, len), "yyyyMMdd HH:mm:ss");
        }
        catch (Throwable t) {
            return null;
        }
    }

}
